package jmine.tec.utils.collection;

/**
 * Represents a binary operation.
 * 
 * @author jrenaut
 * @param <R> the return type
 * @param <S> the first parameter type
 * @param <T> the second parameter type
 */
public interface BinaryOperation<R, S, T> {

    /**
     * Performs the operation on the provided values
     * 
     * @param s a value of type S
     * @param t a value of type T
     * @return the result of the binary operation of type R
     */
    R apply(S s, T t);

}
